<--- %%NOBANNER%% --> attrv.sas.sas
 BackForward
%macro attrv(ds,var,attrib);
%local _attrvdsid_ _attrvrc_ _attrvnum_;

%let _attrvdsid_=%sysfunc(open(&ds,is));
%if &_attrvdsid_ EQ 0 %then %do;
  %put ERROR: (attrv) Dataset &ds not opened due to the following reason:;
  %put %sysfunc(sysmsg());
%end;
%else %do;
  %let _attrvnum_=%sysfunc(varnum(&_attrvdsid_,&var));
  %if &_attrvnum_ LT 1 %then %put ERROR: (attrv) Variable &var not in dataset &ds;
  %else %do;
%sysfunc(&attrib(&_attrvdsid_,&_attrvnum_))
  %end;
  %let _attrvrc_=%sysfunc(close(&_attrvdsid_));
%end;
%mend;